import { assessmentFillApi } from "../../utils/api"

// 绩效考核页面逻辑
Component({
  data: {
    // 考核列表数据
    assessmentList: [],
    
    // 加载状态
    loading: false,
    
    // 空状态提示
    emptyText: '暂无考核数据',
    
    // 当前用户信息
    userInfo: {},
    
    // 状态映射表
    statusMap: {
      'draft': '待填写',
      'not_started': '待填写',
      'in_progress': '进行中',
      'completed': '已完成',
      'rejected': '已驳回'
    }
  },

  methods: {
    // 页面加载时初始化
    onLoad() {
      this.loadAssessmentData()
      this.loadUserInfo()
    },

    handlerGobackClick() {
      wx.navigateBack({
        delta: 1
      })
    },

    // 页面显示时刷新数据
    onShow() {
      this.loadAssessmentData()
    },

    // 加载用户信息
    loadUserInfo() {
      const userInfo = wx.getStorageSync('userInfo') || {}
      this.setData({ userInfo })
    },

    // 加载考核数据列表
    async loadAssessmentData() {
      this.setData({ loading: true })
      
      try {
        const res = await assessmentFillApi.getAssessmentFillList()
        console.log('考核数据响应:', res)
        
        if (res.code === 200 && res.data) {
          console.log('考核列表数据:', res.data)
          
          // 处理数据，添加状态文本和格式化日期
          const processedData = Array.isArray(res.data) ? res.data : [res.data]
          const dataWithStatusText = processedData.map(item => ({
            ...item,
            statusText: this.getStatusText(item.fillStatus),
            formattedSubmitTime: this.formatDate(item.submitTime)
          }))
          
          this.setData({
            assessmentList: dataWithStatusText,
            loading: false
          })
        } else {
          this.setData({
            assessmentList: [],
            loading: false,
            emptyText: res.msg || '暂无考核数据'
          })
        }
      } catch (error) {
        console.error('加载考核数据失败:', error)
        this.setData({
          assessmentList: [],
          loading: false,
          emptyText: '加载失败，请下拉刷新'
        })
      }
    },

    // 下拉刷新
    onPullDownRefresh() {
      this.loadAssessmentData()
      wx.stopPullDownRefresh()
    },

    // 点击考核卡片进入详情
    onAssessmentTap(e: any) {
      const { id } = e.currentTarget.dataset
      if (id) {
        wx.navigateTo({
          url: `/pages/kpi-fill/kpi-fill?id=${id}`
        })
      }
    },

    // 新增考核
    onAddAssessment() {
      wx.navigateTo({
        url: '/pages/performance-add/performance-add'
      })
    },

    // 格式化日期显示
    formatDate(dateStr: string) {
      if (!dateStr) return ''
      const date = new Date(dateStr)
      const year = date.getFullYear()
      const month = String(date.getMonth() + 1).padStart(2, '0')
      const day = String(date.getDate()).padStart(2, '0')
      return `${year}-${month}-${day}`
    },

    // 获取状态文本
    getStatusText(status: string) {
      console.log('getStatusText 被调用，状态:', status)
      return this.data.statusMap[status] || '待填写'
    },

    // 获取状态样式类
    getStatusClass(status: string) {
      const statusMap: Record<string, string> = {
        'draft': 'status-draft',
        'submitted': 'status-submitted',
        'approved': 'status-approved',
        'rejected': 'status-rejected'
      }
      return statusMap[status] || 'status-draft'
    }
  }
})